import axios from 'axios';

// Student API基础URL
const API_URL = '/api/student';

/**
 * 学生API服务
 */
export default {
  /**
   * 添加新学生
   * @param {Object} student - 学生数据对象
   * @returns {Promise} - API响应
   */
  addStudent(student) {
    return axios.post(API_URL, student);
  },

  /**
   * 更新学生信息
   * @param {Object} student - 包含更新信息的学生数据
   * @returns {Promise} - API响应
   */
  updateStudent(student) {
    return axios.put(API_URL, student);
  },

  /**
   * 根据ID删除学生
   * @param {Number} id - 要删除的学生ID
   * @returns {Promise} - API响应
   */
  deleteStudent(id) {
    return axios.delete(`${API_URL}/${id}`);
  },

  /**
   * 获取分页的学生及班级信息
   * @param {Object} query - 分页和筛选参数
   * @returns {Promise} - API响应
   */
  getStudents(query) {
    return axios.post(`${API_URL}/page`, query);
  },

  /**
   * 根据ID获取学生
   * @param {Number} id - 学生ID
   * @returns {Promise} - API响应
   */
  getStudentById(id) {
    return axios.get(`${API_URL}/${id}`);
  },

  // 批量导入学生
  importStudents(formData) {
    return axios.post('/api/student/import', formData, {
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    });
  },

  // 导出学生数据
  exportStudents(query) {
    return axios.post('/api/student/export', query, {
      responseType: 'blob'
    });
  },

  beforeUpload(file) {
    const isXlsx = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
    const isLt10M = file.size / 1024 / 1024 < 10;
    if (!isXlsx) {
      ElMessage.error('只能上传Excel（.xlsx）文件!');
      return false;
    }
    if (!isLt10M) {
      ElMessage.error('上传文件大小不能超过10MB!');
      return false;
    }
    return true;
  },

  downloadTemplate() {
    // 你可以将模板文件放在public目录下
    window.open('/template/学生导入模板.xlsx');
  }
}
